package UnSame;

public class UnSame1 {
    //抽象类可以定义类的全部功能，接口只能定义常量，抽象方法（JDK8新增三种方式：默认方法（普通实例方法），私有方法，静态方法）
}
//抽象类
abstract class A1 {
    //成员变量
    public int a;
    //常量
    public static final int b = 1;
    //构造器
    public A1(){
        System.out.println("无参构造器");
    }
    //抽象方法
    abstract void a();
    //实例方法
    void b(){
        System.out.println("实例方法");
    }
}

//接口
interface B1 {//平常不会用，但可以有
    //常量
    public static final int a = 1;


    //1.默认方法（普通实例方法）：必须加default修饰
    //默认会用public修饰
    //使用接口的实现类的对象来调用
    default void method(){
        System.out.println("A接口的默认方法");
        method1();
    }

    //2.私有方法(JDK9开始才支持)
    //使用接口中的其他实例方法来调用
    private void method1(){
        System.out.println("A接口的私有方法");
    }

    //3.静态方法：必须加static修饰
    //只能使用当前接口名来调用
    static void method2(){
        System.out.println("A接口的静态方法");
    }

}

